//package com.plian.system.service.om.monitor.impl;
//
//
//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
//import com.plian.Tools.CollectionUtil;
//import com.plian.Tools.DateUtil;
//import com.plian.Tools.TokenUtil;
//import com.plian.Tools.pagedata.PageData;
//import com.plian.system.constant.om.SpecialFormType;
//import com.plian.system.dao.sys.fun.FunDao;
//import com.plian.system.entity.fr.indicators.GraphicOrgRelation;
//import com.plian.system.entity.om.module.ModuleChild;
//import com.plian.system.entity.om.monitor.MonitorResult;
//import com.plian.system.enumeratea.ExcelTableName;
//import com.plian.system.enumeratea.FormTableEnum;
//import com.plian.system.mapper.om.MonitorResultMapper;
//import com.plian.system.model.ListResult;
//import com.plian.system.mybatis.base.BaseServiceImpl;
//import com.plian.system.service.fr.indicatorsvalue.IGraphicOrgRelationService;
//import com.plian.system.service.om.module.IModuleChildService;
//import com.plian.system.service.om.module.IModuleConfigService;
//import com.plian.system.service.om.monitor.IMonitorResultService;
//import com.plian.system.service.sys.orgzation.OrgzationService;
//import com.plian.system.vo.om.module.ModuleConfigVO;
//import com.plian.system.vo.om.monitor.MonitorMonth;
//import com.plian.system.vo.om.monitor.MonitorResultOut;
//import com.plian.system.wrapper.om.MonitorResultWrapper;
//import lombok.AllArgsConstructor;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.stereotype.Service;
//
//import java.math.BigDecimal;
//import java.util.*;
//import java.util.stream.Collectors;
//
//import static java.math.BigDecimal.ROUND_HALF_DOWN;
//
///**
// * 填报监控结果 服务实现类
// *
// * @author xiaohu
// */
//@Slf4j
//@Service
//@AllArgsConstructor
//public class MonitorResultServiceImpl extends BaseServiceImpl<MonitorResultMapper, MonitorResult> implements IMonitorResultService {
//
//	private final MonitorResultWrapper resultWrapper;
//
//	private final MonitorResultMapper resultMapper;
//
//	private final IModuleConfigService configService;
//
//	private final IModuleChildService childService;
//
//	private final OrgzationService orgzationService;
//
//	private final FunDao funDao;
//
//	private final IGraphicOrgRelationService orgRelationService;
//
//	/**
//	 * 国资委-运营监控报表-刷新
//	 * @param month
//	 * @return
//	 */
//	@Override
//	public List<MonitorMonth> refrushResult(Date month){
//
//		List<MonitorMonth> monitorMonths = new ArrayList<>();
//		//获取13家企业
//		ListResult thirteen = orgzationService.findThirteen();
//		List<PageData> list = thirteen.getList();
//		List<String> subordinateIds = (list).stream().map(m -> m.getString("id")).collect(Collectors.toList());
//		//合并企业
//		List<GraphicOrgRelation> orgRelations = orgRelationService.list();
//
//		Map<String, List<GraphicOrgRelation>> mapByPid = orgRelations.stream().filter(m -> m.getType() == 2).collect(Collectors.groupingBy(GraphicOrgRelation::getParentId));
//		mapByPid.values().stream().map(m -> m.stream().map(GraphicOrgRelation::getChildId).collect(Collectors.toList())).forEach(subordinateIds::addAll);
//
//		//获取下个月时间
//		Calendar rightNow = Calendar.getInstance();
//		rightNow.setTime(month);
//		rightNow.add(Calendar.MONTH, 1);
//		Date end = rightNow.getTime();
//		//查询当月模块配置
//		List<ModuleConfigVO> modelByMonth = configService.getModelByMonth(month,end,subordinateIds);
//
//		if (CollectionUtil.isEmpty(modelByMonth)){
//			return monitorMonths;
//		}
//
//		Map<Date, List<ModuleConfigVO>> collect = modelByMonth.stream().collect(Collectors.groupingBy(ModuleConfigVO::getStartTime));
//		List<Date> dates = collect.keySet().stream().sorted().collect(Collectors.toList());
//
//		//删除
//		String monthString = DateUtil.format(month, DateUtil.PATTERN_MONTH);
//		resultMapper.delete(new LambdaQueryWrapper<MonitorResult>().eq(MonitorResult::getMonth, monthString)
//				.in(MonitorResult::getOrgId,subordinateIds));
//
//		for (Date startTime:dates){
//			MonitorMonth monitorMonth = new MonitorMonth();
//			List<ModuleConfigVO> moduleConfigVOS = collect.get(startTime);
//
//			//获取表头企业
//			List<String> orgIds = new ArrayList<>();
//			List<String> orgNames = new ArrayList<>();
//
//			//获取模块企业Id
//			Set<String> moduleOrgIds = moduleConfigVOS.stream().map(ModuleConfigVO::getOrgId).collect(Collectors.toSet());
//			moduleOrgIds.forEach(
//					m ->{
//						subordinateIds.forEach(
//								n ->{
//									if (m.equals(n)){
//										orgIds.add(m);
//										orgNames.add(orgzationService.getNameById(m));
//									}
//								}
//						);
//					}
//			);
//
//			List<MonitorResultOut> result = getResult(subordinateIds, month,moduleConfigVOS,mapByPid);
//			monitorMonth.setStartTime(startTime);
//			monitorMonth.setEndTime(moduleConfigVOS.get(0).getEndTime());
//			monitorMonth.setMonitorResults(result);
//			monitorMonth.setOrgIds(orgIds);
//			monitorMonth.setOrgNames(orgNames);
//			monitorMonths.add(monitorMonth);
//		}
//
//
//		return monitorMonths;
//	}
//
//	/**
//	 * 国资委-运营监控报表
//	 * @param month
//	 * @return
//	 */
//	@Override
//	public List<MonitorMonth> getMonitorResult(Date month){
//		List<MonitorMonth> monitorMonths = new ArrayList<>();
//
//		String monthString = DateUtil.format(month, DateUtil.PATTERN_MONTH);
//		//获取13家企业
//		ListResult thirteen = orgzationService.findThirteen();
//		List<String> subordinateIds = ((List<PageData>) thirteen.getList()).stream().map(m -> m.getString("id")).collect(Collectors.toList());
//		//查询结果
//		List<MonitorResult> monitorResults = resultMapper.selectList(new LambdaQueryWrapper<MonitorResult>().eq(MonitorResult::getMonth, monthString)
//		.in(MonitorResult::getOrgId,subordinateIds));
//
//		if (CollectionUtil.isNotEmpty(monitorResults)){
//			monitorMonths = getResulrByTable(monitorResults,month,subordinateIds);
//		} else{
//			monitorMonths = refrushResult(month);
//		}
//
//		return monitorMonths;
//	}
//
//	/**
//	 * 获取使用率
//	 * @param month
//	 * @param orgIds
//	 * @return
//	 */
//	@Override
//	public List<MonitorResult> getUseProperty(String month,List<String> orgIds){
//		return list(new LambdaQueryWrapper<MonitorResult>().in(MonitorResult::getOrgId, orgIds).eq(MonitorResult::getMonth, month)
//				.eq(MonitorResult::getFormType, 0));
//	}
//
//	/**
//	 * 集团运营监控报表
//	 * @param month
//	 * @param type
//	 * @return
//	 */
//	@Override
//	public List<MonitorMonth> refrushGroup(Date month,Integer type){
//		List<MonitorMonth> monitorMonths = new ArrayList<>();
//
//		List<String> subordinateIds = new ArrayList<>();
//		//当前登陆组织Id
//		String tokenOrgId = TokenUtil.getTokenOrgId();
//
//		if (type == 0){
//			//集团本体
//			subordinateIds.add(tokenOrgId);
//		}else if (type == 1){
//			//子公司
//			try {
//				List<PageData> chlidList = orgzationService.getChlidList(tokenOrgId);
//				subordinateIds = chlidList.stream().map(m -> m.getString("id")).collect(Collectors.toList());
//				subordinateIds.remove(tokenOrgId);
//			} catch (Exception e) {
//				e.printStackTrace();
//			}
//		}
//		//获取下个月时间
//		Calendar rightNow = Calendar.getInstance();
//		rightNow.setTime(month);
//		rightNow.add(Calendar.MONTH, 1);
//		Date end = rightNow.getTime();
//		//查询当月模块配置
//		List<ModuleConfigVO> modelByMonth = configService.getModelByMonth(month,end,subordinateIds);
//
//		if (CollectionUtil.isEmpty(modelByMonth)){
//			return monitorMonths;
//		}
//		Map<Date, List<ModuleConfigVO>> collect = modelByMonth.stream().collect(Collectors.groupingBy(ModuleConfigVO::getStartTime));
//		List<Date> dates = collect.keySet().stream().sorted().collect(Collectors.toList());
//		String monthString = DateUtil.format(month, DateUtil.PATTERN_MONTH);
//
//		//删除
//		resultMapper.delete(new LambdaQueryWrapper<MonitorResult>().eq(MonitorResult::getMonth, monthString)
//				.in(MonitorResult::getOrgId,subordinateIds));
//
//
//		for (Date startTime:dates){
//			MonitorMonth monitorMonth = new MonitorMonth();
//			List<ModuleConfigVO> moduleConfigVOS = collect.get(startTime);
//
//			//获取表头企业
//			List<String> orgIds = new ArrayList<>();
//			List<String> orgNames = new ArrayList<>();
//
//			//获取模块企业Id
//			Set<String> moduleOrgIds = moduleConfigVOS.stream().map(ModuleConfigVO::getOrgId).collect(Collectors.toSet());
//			for (String m :moduleOrgIds){
//				for (String n:subordinateIds){
//					if (m.equals(n)){
//						orgIds.add(m);
//						orgNames.add(orgzationService.getNameById(m));
//					}
//				}
//
//			}
//
//			List<MonitorResultOut> result = getResult(subordinateIds, month,moduleConfigVOS,null);
//			monitorMonth.setStartTime(startTime);
//			monitorMonth.setEndTime(moduleConfigVOS.get(0).getEndTime());
//			monitorMonth.setMonitorResults(result);
//			monitorMonth.setOrgIds(orgIds);
//			monitorMonth.setOrgNames(orgNames);
//			monitorMonths.add(monitorMonth);
//		}
//
//		return monitorMonths;
//	}
//
//	/**
//	 * 集团运营监控报表-刷新
//	 * @param month
//	 * @param type
//	 * @return
//	 */
//	@Override
//	public List<MonitorMonth> getMonitorResultType(Date month,Integer type){
//		List<MonitorMonth> monitorMonths = new ArrayList<>();
//
//		String monthString = DateUtil.format(month, DateUtil.PATTERN_MONTH);
//		List<String> subordinateIds = new ArrayList<>();
//		//当前登陆组织Id
//		String tokenOrgId = TokenUtil.getTokenOrgId();
//
//		if (type == 0){
//			//集团本体
//			subordinateIds.add(tokenOrgId);
//		}else if (type == 1){
//			//子公司
//			try {
//				List<PageData> chlidList = orgzationService.getChlidList(tokenOrgId);
//				subordinateIds = chlidList.stream().map(m -> m.getString("id")).collect(Collectors.toList());
//				subordinateIds.remove(tokenOrgId);
//			} catch (Exception e) {
//				e.printStackTrace();
//			}
//		}
//		//查询结果
//		List<MonitorResult> monitorResults = resultMapper.selectList(new LambdaQueryWrapper<MonitorResult>().eq(MonitorResult::getMonth, monthString)
//				.in(MonitorResult::getOrgId,subordinateIds));
//		if (CollectionUtil.isNotEmpty(monitorResults)){
//			monitorMonths = getResulrByTable(monitorResults,month,subordinateIds);
//		} else{
//			monitorMonths = refrushGroup(month,type);
//		}
//
//		return monitorMonths;
//	}
//
//	/**
//	 * 修改单个
//	 * @param result
//	 * @return
//	 */
//	@Override
//	public MonitorResult editUnCycle(MonitorResult result){
//		resultMapper.updateById(result);
//		//修改配置
//		configService.editModelByResult(result);
//		return result;
//	}
//
//	/**
//	 * 查询数据库里的结果
//	 * @param monitorResults
//	 * @param month
//	 * @param subordinateIds
//	 * @return
//	 */
//	public List<MonitorMonth> getResulrByTable(List<MonitorResult> monitorResults,Date month,List<String> subordinateIds) {
//		List<MonitorMonth> monitorMonths = new ArrayList<>();
//		//结果根据开始时间聚合
//		Map<Date, List<MonitorResult>> mapByStartTime = monitorResults.stream().collect(Collectors.groupingBy(MonitorResult::getStartTime));
//
//		//获取下个月时间
//		Calendar rightNow = Calendar.getInstance();
//		rightNow.setTime(month);
//		rightNow.add(Calendar.MONTH, 1);
//		Date end = rightNow.getTime();
//		//查询当月模块配置
//		List<ModuleConfigVO> modelByMonth = configService.getModelByMonth(month, end, subordinateIds);
//
//		if (CollectionUtil.isEmpty(modelByMonth)) {
//			return monitorMonths;
//		}
//
//		Map<Date, List<ModuleConfigVO>> collect = modelByMonth.stream().collect(Collectors.groupingBy(ModuleConfigVO::getStartTime));
//		List<Date> dates = mapByStartTime.keySet().stream().sorted().collect(Collectors.toList());
//		for (Date startTime : dates) {
//			//图表输出
//			List<MonitorResultOut> result = new ArrayList<>();
//
//			//获取当前时间
//			List<MonitorResult> monitorResultsByTime = mapByStartTime.get(startTime);
//			//根据formType
//			Map<Integer, List<MonitorResult>> mapByFormType = monitorResultsByTime.stream().collect(Collectors.groupingBy(MonitorResult::getFormType));
//			//formTYpe
//			Set<Integer> formTypes = mapByFormType.keySet().stream().sorted().collect(Collectors.toSet());
//
//			MonitorMonth monitorMonth = new MonitorMonth();
//			List<ModuleConfigVO> moduleConfigVOS = collect.get(startTime);
//
//			//获取表头企业
//			List<String> orgIds = new ArrayList<>();
//			List<String> orgNames = new ArrayList<>();
//
//			//获取模块企业Id
//			Set<String> moduleOrgIds = moduleConfigVOS.stream().map(ModuleConfigVO::getOrgId).collect(Collectors.toSet());
//			moduleOrgIds.forEach(
//					m -> {
//						subordinateIds.forEach(
//								n -> {
//									if (m.equals(n)) {
//										orgIds.add(m);
//										orgNames.add(orgzationService.getNameById(m));
//									}
//								}
//						);
//					}
//			);
//			//获取配置模块
//			List<PageData> byFormType = funDao.getByFormType();
//			for (Integer formTypeId : formTypes) {
//				//构建填报监控图表
//				MonitorResultOut monitorResultOut = new MonitorResultOut();
//				//模块名称
//				List<PageData> formType = byFormType.stream().filter(m -> formTypeId.equals(m.getInteger("formType"))).collect(Collectors.toList());
//				if (CollectionUtil.isNotEmpty(formType)){
//					PageData pageData1 = formType.get(0);
//					String moduleName = pageData1.getString("name");
//					String businessName = pageData1.getString("pName");
//					//塞入模块名
//					monitorResultOut.setModuleName(moduleName);
//					monitorResultOut.setBusinessName(businessName);
//				}
//				//结果
//				List<MonitorResult> results = mapByFormType.get(formTypeId).stream().sorted(Comparator.comparing(MonitorResult::getOrgId)).collect(Collectors.toList());
//				monitorResultOut.setFormType(formTypeId);
//				monitorResultOut.setMonitorResults(results);
//				result.add(monitorResultOut);
//			}
//			monitorMonth.setStartTime(startTime);
//			monitorMonth.setEndTime(moduleConfigVOS.get(0).getEndTime());
//			monitorMonth.setMonitorResults(result);
//			monitorMonth.setOrgIds(orgIds);
//			monitorMonth.setOrgNames(orgNames);
//			monitorMonths.add(monitorMonth);
//		}
//		return monitorMonths;
//	}
//
//	/**
//	 * 获取查询结果
//	 * @param subordinateIds
//	 * @param month
//	 * @param modelByMonth
//	 * @return
//	 */
//	public List<MonitorResultOut> getResult(List<String> subordinateIds,Date month,List<ModuleConfigVO> modelByMonth,Map<String, List<GraphicOrgRelation>> mapByPid){
//		//图表输出
//		List<MonitorResultOut> monitorResultOuts = new ArrayList<>();
//
//		//获取配置模块
//		List<PageData> byFormType = funDao.getByFormType();
//
//		//月份转String
//		String monthString = DateUtil.format(month, DateUtil.PATTERN_MONTH);
//
//		//按照模块id划分,获取配置过的模块Id
//		if (CollectionUtil.isEmpty(modelByMonth)){
//			return monitorResultOuts;
//		}
//		Map<Integer, List<ModuleConfigVO>> mapByFormType = modelByMonth.stream().sorted(Comparator.comparing(ModuleConfigVO::getFormType)).collect(Collectors.groupingBy(ModuleConfigVO::getFormType));
//		Set<Integer> formTypeIds = mapByFormType.keySet();
//		//获取表头企业
//		List<String> orgIds = new ArrayList<>();
//
//		//获取模块企业Id
//		Set<String> moduleOrgIds = modelByMonth.stream().map(ModuleConfigVO::getOrgId).collect(Collectors.toSet());
//		for (String m :moduleOrgIds){
//			for (String n :subordinateIds){
//				if (m.equals(n)){
//					orgIds.add(m);
//				}
//			}
//		}
//		orgIds = orgIds.stream().sorted().collect(Collectors.toList());
//		//保存所有，便于计算使用率
//		List<MonitorResult> scoreList = new ArrayList<>();
//
//		for (Integer formTypeId:formTypeIds){
//			//构建填报监控图表
//			MonitorResultOut monitorResultOut = new MonitorResultOut();
//			List<MonitorResult> monitorResults = new ArrayList<>();
//
//			List<ModuleConfigVO> moduleConfigVOS = mapByFormType.get(formTypeId);
//			FormTableEnum formTableEnum = FormTableEnum.getByFormType(formTypeId);
//			//模块名称
//			PageData pageData1 = byFormType.stream().filter(m -> formTypeId.equals(m.getInteger("formType"))).collect(Collectors.toList()).get(0);
//			String moduleName = pageData1.getString("name");
//			String businessName =pageData1.getString("pName");
//			String url = pageData1.getString("url");
//			for (String orgId:orgIds){
//				//构建监控结果
//				MonitorResult monitorResult = new MonitorResult();
//				monitorResult.setStartTime(moduleConfigVOS.get(0).getStartTime());
//				monitorResult.setFormType(formTypeId);
//				monitorResult.setOrgId(orgId);
//				monitorResult.setMonth(monthString);
//				//筛选对应模块
//				List<ModuleConfigVO> moduleOrg = moduleConfigVOS.stream().filter(m -> orgId.equals(m.getOrgId())).collect(Collectors.toList());
//
//				if (CollectionUtil.isNotEmpty(moduleOrg)){
//					ModuleConfigVO moduleConfigVO = moduleOrg.get(0);
//
//					//处理修改过的格子
//					Integer isEditLog = moduleConfigVO.getIsEditLog();
//
//					if (Optional.ofNullable(isEditLog).isPresent() && isEditLog == 1){
//						getCount(formTableEnum,url,monthString,orgId,formTypeId,moduleConfigVO,monitorResult,true);
//					}else {
//						Integer isAssessment = moduleConfigVO.getIsAssessment();
//						if (Optional.ofNullable(isAssessment).isPresent()){
//							if (isAssessment == 1){
//								monitorResult.setIsScore(1);
//								//需要考核
//								//根据周期性获取考核时间戳List
//								Integer periodic = moduleConfigVO.getPeriodic();
//								List<String> dates = new ArrayList<>();
//								if (periodic == 0){
//									//非周期性
//									dates.add(monthString);
//								}else {
//									//周期性
//									dates = DateUtil.findDates(periodic, moduleConfigVO.getCalculateTime(), moduleConfigVO.getEndTime());
//								}
//								if (dates.contains(monthString)){
//									getCount(formTableEnum,url,monthString,orgId,formTypeId,moduleConfigVO,monitorResult,false);
//								}else {
//									//不包含当前月份
//									monitorResult.setUsageNum(3);
//									monitorResult.setIsScore(0);
//									monitorResult.setScore(0);
//								}
//								if (periodic == 0){
//									//非周期性
//									monitorResult.setUsageNum(4);
//									monitorResult.setScore(1);
//								}
//							}else {
//								//不需要考核
//								monitorResult.setUsageNum(3);
//								monitorResult.setIsScore(0);
//								monitorResult.setScore(0);
//							}
//						}
//					}
//
//				}else {
//					//没有配置模块
//					monitorResult.setUsageNum(3);
//					monitorResult.setIsScore(0);
//					monitorResult.setScore(0);
//				}
//				monitorResults.add(monitorResult);
//				scoreList.add(monitorResult);
//			}
//			//塞入模块名
//			monitorResultOut.setModuleName(moduleName);
//			monitorResultOut.setBusinessName(businessName);
//
//			monitorResultOut.setFormType(formTypeId);
//			monitorResultOut.setMonitorResults(monitorResults);
//			monitorResultOuts.add(monitorResultOut);
//
//		}
//		//合并节点计算
//		if (Optional.ofNullable(mapByPid).isPresent()){
//			//合并节点
//			Set<String> sumOrgIds = mapByPid.keySet();
//			for (String sumOrgId:sumOrgIds){
//				//子节点
//				List<String> childs = mapByPid.get(sumOrgId).stream().map(GraphicOrgRelation::getChildId).collect(Collectors.toList());
//				for (MonitorResult monitorResult:scoreList){
//					if (sumOrgId.equals(monitorResult.getOrgId())){
//						List<MonitorResult> childResults = scoreList.stream().filter(m -> monitorResult.getFormType().equals(m.getFormType()) && childs.contains(m.getOrgId())).collect(Collectors.toList());
//						//使用情况
//						List<Integer> usages = childResults.stream().map(MonitorResult::getUsageNum).collect(Collectors.toList());
//						if (usages.contains(2)){
//							monitorResult.setUsageNum(2);
//						}else {
//							monitorResult.setUsageNum(usages.get(0));
//						}
//						//得分
//						List<Integer> scores = childResults.stream().map(MonitorResult::getScore).filter(m -> Optional.ofNullable(m).isPresent()).collect(Collectors.toList());
//						if (CollectionUtil.isNotEmpty(scores)){
//							int a = 0;
//							for (Integer score:scores){
//								a= a+ score;
//							}
//							monitorResult.setUsageNum(a / (scores.size()));
//						}
//					}
//				}
//			}
//		}
//
//
//		Map<String, List<MonitorResult>> monitorByOrg = scoreList.stream().collect(Collectors.groupingBy(MonitorResult::getOrgId));
//		//保存
//		saveList(scoreList);
//		//计算使用率
//		List<MonitorResult> useResults = new ArrayList<>();
//		for (String orgId:orgIds){
//			MonitorResult monitorResult = new MonitorResult();
//			monitorResult.setStartTime(modelByMonth.get(0).getStartTime());
//			monitorResult.setMonth(monthString);
//			monitorResult.setOrgId(orgId);
//			monitorResult.setFormType(0);
//			List<MonitorResult> monitorResults = monitorByOrg.get(orgId);
//			if (CollectionUtil.isNotEmpty(monitorResults)){
//				//得分
//				Integer score = monitorResults.stream().filter(m -> Optional.ofNullable(m.getScore()).isPresent()).map(MonitorResult::getScore).reduce(0, Integer::sum);
//				//总分
//				Integer sumScore = monitorResults.stream().filter(m -> Optional.ofNullable(m.getIsScore()).isPresent()).map(MonitorResult::getIsScore).reduce(0, Integer::sum);
//				if (Optional.ofNullable(score).isPresent() && Optional.ofNullable(sumScore).isPresent() && sumScore != 0){
//					BigDecimal useProperty = (new BigDecimal(score).multiply(new BigDecimal(100))).divide(new BigDecimal(sumScore), 2, ROUND_HALF_DOWN);
//					monitorResult.setUseProperty(useProperty.toPlainString() + "%");
//				}else {
//					monitorResult.setUseProperty("0%");
//				}
//			}else {
//				monitorResult.setUseProperty("100%");
//			}
//			monitorResult.setIsDeleted(0);
//			resultMapper.insert(monitorResult);
//			useResults.add(monitorResult);
//		}
//		//构建使用率实体
//		MonitorResultOut monitorResultOut = new MonitorResultOut();
//		monitorResultOut.setFormType(0);
//		monitorResultOut.setMonitorResults(useResults);
//		List<MonitorResultOut> out = new ArrayList<>();
//		out.add(0,monitorResultOut);
//		out.addAll(monitorResultOuts);
//		return out;
//	}
//
//	/**
//	 * 计算分数
//	 * @param formTableEnum
//	 * @param url
//	 * @param monthString
//	 * @param orgId
//	 * @param formTypeId
//	 * @param moduleConfigVO
//	 * @param monitorResult
//	 */
//	private void getCount(FormTableEnum formTableEnum,String url,String monthString,String orgId
//	,Integer formTypeId,ModuleConfigVO moduleConfigVO,MonitorResult monitorResult,Boolean isEdit){
//		//包含当前月份，就考核
//		PageData pageData = new PageData();
//		pageData.put("tableName",formTableEnum.getTableName());
//		String dateTableName = formTableEnum.getDateTableName();
//		pageData.put("dateTableName", dateTableName);
//		pageData.put("orgColumnName",formTableEnum.getOrgColumnName());
//		pageData.put("url",url);
//		//判断是否是到年
//		if ("YEAR".equals(dateTableName)){
//			monthString = monthString.substring(0,4);
//		}
//		pageData.put("time",monthString+"%");
//		pageData.put("orgId",orgId);
//		Integer count = 0;
//		if (SpecialFormType.type.contains(formTypeId)){
//			//需要特殊处理
//			count = getSpecialCount(pageData,formTypeId);
//		}else {
//			count = resultMapper.getCount(pageData);
//		}
//		if (count>1){
//			//已填报
//			//判断下属企业是否需要填报
//			if (moduleConfigVO.getIsHaveChild() == 1){
//				//获取下属子企业
//				List<ModuleChild> childs = childService.getChilds(moduleConfigVO);
//				if (CollectionUtil.isNotEmpty(childs)){
//					for (ModuleChild m :childs) {
//						PageData childData = new PageData();
//						childData.put("tableName",formTableEnum.getTableName());
//						childData.put("dateTableName", dateTableName);
//						childData.put("orgColumnName",formTableEnum.getOrgColumnName());
//						childData.put("time",monthString+"%");
//						childData.put("orgId",m.getChildOrgId());
//						Integer childCount = resultMapper.getCount(childData);
//						if (childCount < 1){
//							if (isEdit){
//								monitorResult.setUsageNum(6);
//							}else {
//								monitorResult.setUsageNum(5);
//							}
//							monitorResult.setScore(0);
//						}else {
//							monitorResult.setUsageNum(1);
//							monitorResult.setScore(1);
//							configService.editModelByResult(monitorResult);
//						}
//					}
//				}
//			}else {
//				monitorResult.setUsageNum(1);
//				monitorResult.setScore(1);
//				configService.editModelByResult(monitorResult);
//			}
//		}else {
//			//未填报
//			if (isEdit){
//				monitorResult.setUsageNum(6);
//			}else {
//				monitorResult.setUsageNum(2);
//			}
//			monitorResult.setScore(0);
//		}
//	}
//	/**
//	 * 特殊处理
//	 * @param pageData 传参
//	 * @param formTypeId	表单类型
//	 * @return
//	 */
//	private Integer getSpecialCount(PageData pageData,Integer formTypeId){
//		Integer count = 0;
//		//工资总额预算  和 调整
//		if (formTypeId == 121){
//			//工资总额预算
//			pageData.put("fillingType",1);
//			count = resultMapper.getCountToSalary(pageData);
//		}else if (formTypeId == 999){
//			//工资总额预算调整
//			pageData.put("fillingType",2);
//			count = resultMapper.getCountToSalary(pageData);
//		}else if(formTypeId == 117){
//			//自定义Excel
//			String url = pageData.getString("url");
//			String code = ExcelTableName.urlToCode(url);
//			String tableNameExcel = resultMapper.getTableNameExcel(code);
//			pageData.put("tableName","excel_bill_"+tableNameExcel);
//			count = resultMapper.getCount(pageData);
//		}else if (formTypeId == 91){
//			//月度指标，年月分开
//			String time = pageData.getString("time");
//			String[] split = time.split("-");
//			pageData.put("fyear",split[0]);
//			pageData.put("fmonth",split[1]);
//			count = resultMapper.getByTimeTwo(pageData);
//		}
//
//		return count;
//	}
//
//}
